Update to handle GEmblem`
authorMatthias Clasen <matthiasc@src.gnome.org>
Mon, 4 Aug 2008 16:36:28 +0000 (16:36 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 4 Aug 2008 16:36:28 +0000 (16:36 +0000)
svn path=/trunk/; revision=20980

ChangeLog
gtk/gtkicontheme.c

index fad58325ee4f7ddc2ff3753a90cebc7efa1ebf35..3d9301cc2b0944b7f9c4db64174168187a41d79b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-08-04  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkicontheme.c: Update to handle GEmblem.
+
 2008-08-04  Michael Natterer  <mitch@imendio.com>
 
        * tests/prop-editor.c: undeprecate (apart from still using
index a34a990630118684d0608e53f8957c5e3de96aec..c4ca0d80f1094f9ac4f4d26407d5c3b79dcb870f 100644 (file)
@@ -3458,19 +3458,21 @@ gtk_icon_theme_lookup_by_gicon (GtkIconTheme       *icon_theme,
   else if (G_IS_EMBLEMED_ICON (icon))
     {
       GIcon *base, *emblem;
+      GList *list, *l;
+      GtkIconInfo *emblem_info;
 
       base = g_emblemed_icon_get_icon (G_EMBLEMED_ICON (icon));
-      emblem = g_emblemed_icon_get_emblem (G_EMBLEMED_ICON (icon));
-
-      /* recursively collect information for all emblems */
       info = gtk_icon_theme_lookup_by_gicon (icon_theme, base, size, flags);
       if (info)
         {
-          GtkIconInfo *emblem_info;
-
-          emblem_info = gtk_icon_theme_lookup_by_gicon (icon_theme, emblem, size / 2, flags);
-          if (emblem_info)
-            info->emblem_infos = g_slist_prepend (info->emblem_infos, emblem_info);
+          list = g_emblemed_icon_get_emblems (G_EMBLEMED_ICON (icon));
+          for (l = list; l; l = l->next)
+            {
+              emblem = g_emblem_get_icon (G_EMBLEM (l->data));
+              emblem_info = gtk_icon_theme_lookup_by_gicon (icon_theme, emblem, size / 2, flags);
+              if (emblem_info)
+                info->emblem_infos = g_slist_prepend (info->emblem_infos, emblem_info);
+            }
         }
 
       return info;